# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""

#1. 创建第一个视觉程序“Hello，world！”，显示Lena图片。
import cv2
import numpy as np


lena = cv2.imread("lena.jpg")#读取目标图片lena.jpg

#1. 创建第一个视觉程序“Hello，world！”，显示Lena图片。
cv2.imshow('Hello, world', lena)
cv2.waitKey()
cv2.destroyAllWindows()


#2. 对Lena图像，分解得到RGB分量及HSV分量，显示各分量，并对结果进行比较说明。 

#2.1 分解得到RGB分量
(B,G,R) = cv2.split(lena)#提取R、G、B分量
#以灰度图的形式显示每个颜色的分量
cv2.imshow("Red",R)
cv2.imshow("Green",G)
cv2.imshow("Blue",B)
cv2.waitKey(0)

# 生成一个值为0的单通道数组
zeros = np.zeros(lena.shape[:2], dtype = "uint8")
# 分别扩展B、G、R成为三通道。另外两个通道用上面的值为0的数组填充
cv2.imshow("Red",cv2.merge([zeros, zeros, R]))
cv2.imshow("Green",cv2.merge([zeros, G, zeros]))
cv2.imshow("Blue", cv2.merge([B, zeros, zeros]))
cv2.waitKey(0)

#2.2 分解得到HSV分量
#转HSV空间
hsv = cv2.cvtColor(lena,cv2.COLOR_BGR2HSV)
cv2.imshow("HSV",hsv)
cv2.waitKey(0)


hsvChannels=cv2.split(hsv)  #将HSV格式的图片分解为3个通道

cv2.imshow('Hue',hsvChannels[0]) #显示Hue分量
cv2.imshow('Saturation',hsvChannels[1]) #显示Saturation分量
cv2.imshow('Value',hsvChannels[2]) #显示Value分量
cv2.waitKey(0)  

